package iso3.pt.model;

import java.util.HashSet;
import java.util.Set;

public class Asignatura {

	private int id;
	private int codigo;
	private String nombre;
	private double creditos;
	private Profesor lecturer;
	private Set<Unidad> unidades;
	private Set<Alumno> matriculacion;

	protected Asignatura() {
	}

	public Asignatura(int codigo, String nombre, double creditos) {
		super();
		this.codigo = codigo;
		this.nombre = nombre;
		this.creditos = creditos;
		unidades = new HashSet<Unidad>();
		matriculacion = new HashSet<Alumno>();
	}

	public Set<Alumno> getMatriculacion() {
		return matriculacion;
	}

	public void setMatriculacion(Set<Alumno> alumnos) {
		matriculacion = alumnos;
	}

	public void addAlumno(Alumno alumno) {
		matriculacion.add(alumno);
	}

	public void removeAlumno(Alumno alumno) {
		matriculacion.remove(alumno);
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public int getCodigo() {
		return codigo;
	}

	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public double getCreditos() {
		return creditos;
	}

	public void setCreditos(double creditos) {
		this.creditos = creditos;
	}

	public void addUnidad(Unidad unidad) {
		unidades.add(unidad);
	}

	public void removeUnidad(Unidad unidad) {
		unidades.remove(unidad);
	}

	public Set<Unidad> getUnidades() {
		return unidades;
	}

	public void setUnidades(Set<Unidad> unidades) {
		this.unidades = unidades;
	}

	public Profesor getProfesor() {
		return lecturer;
	}

	public void setProfesor(Profesor profesor) {
		lecturer = profesor;
	}

	public boolean estaMatriculado(Alumno alumno) {

		return matriculacion.contains(alumno);
	}

	@Override
	public String toString() {
		return "(" + codigo + "|" + nombre + "|" + creditos + ")";
	}
}